package com.ruoyi.stock.mapper;

import com.ruoyi.stock.domain.vo.StockInventoryVo;
import com.ruoyi.stock.domain.vo.StockListVo;
import com.ruoyi.stock.domain.vo.WarehouseOutInfoNumberVo;
import com.ruoyi.stock.domain.vo.WarehouseOutStockVo;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @Author: YwaiX
 * @Version: 1.0
 * @Date: Created in 2024-10-31 19:08:47
 * @Description:
 */

public interface WarehouseOutStockMapper {
    /**
     * 查询出库详情信息
     * @param warehouseOutInfoId
     * @param goodsType
     * @return
     */
    WarehouseOutStockVo list(@Param("warehouseOutInfoId") Integer warehouseOutInfoId, @Param("goodsType") Integer goodsType);

    /**
     * 库存列表
     * @param goodsNo
     * @return
     */
    List<StockListVo> stockList(@Param("goodsNo") String goodsNo,@Param("sourceNo") String sourceNo);

    /**
     * 修改出库清单仓库
     * @param warehouseOutInfoNumberVo
     */
    void update(WarehouseOutInfoNumberVo warehouseOutInfoNumberVo);

    /**
     * 添加出库记录
     * @param warehouseOutInfoNumberVo
     */
    void insert(WarehouseOutInfoNumberVo warehouseOutInfoNumberVo);

    /**
     * 修改库存
     * @param stockInventoryVo
     */
    void updateInventory(StockInventoryVo stockInventoryVo);

    /**
     * 修改出库单状态
     * @param warehouseOutId
     * @param userId
     * @param nowDate
     * @return
     */
    Integer updateWarehouseStatus(@Param("warehouseOutId") Integer warehouseOutId,@Param("userId") Long userId,@Param("warehouseOutDate") Date nowDate);

    /**
     * 修改销售出库状态
     * @param sourceNo
     */
    void updateSaleOrderStatus(String sourceNo);

    /**
     * 修改销售出库单状态
     * @param sourceNo
     */
    void updateSaleOut(String sourceNo);
}
